ALMaSS  1.0
The Animal, Landscape and Man Simulation System
Partridge_All.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2011, Christopher John Topping, University of Aarhus
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without modification, are permitted provided
7 that the following conditions are met:
8 
9 Redistributions of source code must retain the above copyright notice, this list of conditions and the
10 following disclaimer.
11 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
12 the following disclaimer in the documentation and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
17 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
18 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
19 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 ********************************************************************************************************
23 */
37 //---------------------------------------------------------------------------
38 #ifndef partridge_allH
39  #define partridge_allH
40 //---------------------------------------------------------------------------
41 
42 
44 
46 public:
47  void reset();
48  void copyself(population_attributes* a_population_attributes);
49 
85 
86  // Increment functions
87  void incNoClutches() {
88  m_NoClutches++;
89  }
90 
91  void decNoClutches() {
92  m_NoClutches--;
94  }
95 
98  }
99 
102  }
103 
106  }
107 
110  }
111 
114  }
115 
116  void SetPairsInApril( double pa ) {
117  m_NoPairsApril = ( int )pa;
118  }
119 
120  void SetFemalesInApril( double fa ) {
121  m_NoFemalesApril = ( int )fa;
122  }
123 
124  void SetMalesInApril( double fa ) {
125  m_NoMalesApril = ( int )fa;
126  }
127 
128  void SetTerritorialFemalesInApril( double fa ) {
129  m_NoTerritorialFemalesApril = ( int )fa;
130  }
131 
132  void SetBirdsInApril( double ba ) {
133  m_NoBirdsApril = ( int )ba;
134  }
135 
136  void SetBroodGeoMean( double gm ) {
137  m_geomeanBroodSize = gm;
138  }
139 
140  void setNoChicksSept( int n ) {
141  m_NoChicksSept = n;
142  }
143 
144  void setNoFemalesSept( int n ) {
145  m_NoFemalesSept = n;
146  }
147 
148  void setNoMalesSept( int n ) {
149  m_NoMalesSept = n;
150  }
151 
152  void setNoFemalesDec( int n ) {
153  m_NoFemalesDec = n;
154  }
155 
156  void setNoMalesDec( int n ) {
157  m_NoMalesDec = n;
158  }
159 
162  }
163 
166  }
167 
169  m_NoDeadChicks++;
170  }
171 
173  m_NoDeadFemales++;
174  }
175 
176  void incNoDeadMales() {
177  m_NoDeadMales++;
178  }
179 
180  void incNoShotBirds() {
181  m_NoShotBirds++;
182  }
183 
185  m_NoShotFemales++;
186  }
187 
190  }
191 
192  void setNoOldMales( int nm ) {
193  m_NoOldMales = nm;
194  }
195 
196  void setNoOldFemales( int nf ) {
197  m_NoOldFemales = nf;
198  }
199 
202  }
203 
206  }
207 
208  void AddToChicks6wks( int ch ) {
209  m_NoChicksSixWeeks += ch;
210  }
211 
212  void setNoChick1sAug( int ch ) {
213  m_NoChick1sAug = ch;
214  }
215 
216  void setNoChick2sAug( int ch ) {
217  m_NoChick2sAug= ch;
218  }
219 
220  void setNoMalesAug( int nm ) {
221  m_NoMalesAug = nm;
222  }
223 
224  void setNoFemsAug( int nf ) {
225  m_NoFemsAug = nf;
226  }
229 };
230 
235 class k_factors {
242 protected:
243  FILE * kfactorsfile;
246 
247  void reset();
248  void DumpInfoDatabase1( int, int, double );
249  void DumpInfoDatabase();
250 public:
253  void calcreal_1();
254  void calcreal_2();
255  void calcreal_3();
256  void calcDickPottsk();
257  //Output
258  void Output_kfactors();
259  void CreateInfoDatabaseFile();
260  // Constructor/Destructor
261  k_factors();
262  ~k_factors();
263 };
264 
265 
266 typedef enum {
268 
269  // Covey
271 
272  // Clutch
274 
275  // Chicks
277 
278  // Male
280 
281  // Female
284  // Covey
286  // Misc.
288 }
290 
291 
296 typedef enum {
298 }
300 
301 
302 
303 class Partridge_Base;
304 class Partridge_Clutch;
305 class Partridge_Nestling;
306 class Partridge_PreFledgeling;
307 class Partridge_Female;
308 class Partridge_Male;
309 class Partridge_Covey;
311 
312 
313 
314 template < class T >
315 class TPartridgeList : public vector < T > {
316 public:
317  TPartridgeList() : vector < T > () {
318  ;
319  }
320  /* double Probe(probe_data* p_TheProbe) { return 0.0; } */
321 };
322 
323 
324 
330 public:
331  int x;
332  int y;
334 };
335 
336 
337 
343 public:
344  int x;
345  int y;
346  int bx;
347  int by;
351 
352  virtual ~Partridge_struct() {;
353  }
354 };
355 
356 
357 
363 public:
364  int No;
366 };
367 
368 
369 
375 public:
377  bool sex;
378 };
379 
380 
381 
387 public:
388  bool sex;
389  int age;
390 };
391 
392 
393 
395 
396 
401 class Partridge_Base : public TAnimal {
402 protected:
404  int m_signal;
406  long m_id;
410  int m_age;
412  int m_born_x;
414  int m_born_y;
424  virtual bool DailyMortality();
426  virtual void CheckMatePointers() {;}
427 
428 public:
433  return m_object_type;
434  }
435 
437  bool GetUncleStatus() {
438  return m_UncleStatus;
439  }
440 
442  void SetUncleStatus( bool a_Status ) {
443  m_UncleStatus = a_Status;
444  }
445 
447  bool PossibleMate( Partridge_Base * a_partridge );
448 
450  virtual bool ArePaired() { return false; }
451 
454  return m_covey;
455  }
458  return m_state;
459  }
460 
462  void SetState( Partridge_State a_pars ) {
463  m_state = a_pars;
464  }
465 
467  int GetFamily( void ) {
468  return m_family_counter;
469  }
470 
472  int GetAge( void ) {
473  return m_age;
474  }
475 
477  void SetAge( int a_age ) {
478  m_age = a_age;
479  }
480 
482  long GetID( void ) {
483  return m_id;
484  }
485 
487  void SetFamily( unsigned int family ) {
488  m_family_counter = family;
489  }
490 
492  void SetCovey( Partridge_Covey * a_covey ) {
493  m_covey = a_covey;
494  }
495 
497  void MakeCovey();
499  void SwitchCovey( Partridge_Covey * a_covey );
500 
502  Partridge_Base( int a_born_x, int a_born_y, int a_x, int a_y, int a_family_counter, Partridge_Covey * a_covey,
503  Landscape * a_map, Partridge_Population_Manager * a_manager );
504 
507  virtual ~Partridge_Base( void );
508 
510  virtual void CopyMyself(int a_Ptype);
511 };
512 
513 
514 
522  void ClDying( void );
529 
530 public:
532  virtual void Dying() {
533  ClDying();
534  }
538  virtual void BeginStep( void );
540  virtual void Step( void );
542  virtual void EndStep( void );
544  virtual bool DailyMortality();
546  virtual bool OnFarmEvent( FarmToDo event );
548  void AgDying();
550  void OnEaten();
552  void OnGivenUp();
554  void OnMumDead();
556  void SetClutchSize(int cs) {
557  m_clutch_size=cs;
558  }
559 
561  int GetClutchSize( void ) {
562  return m_clutch_size;
563  }
564 
567  return m_mother;
568  }
569 
571  Partridge_Clutch( int a_x, int a_y, Partridge_Female * a_mother, Partridge_Covey * a_flock, Landscape * a_map,
572  int a_num_eggs, int a_family_counter, Partridge_Population_Manager * a_manager );
573 
575  virtual ~Partridge_Clutch( void ) {;}
576 };
577 
578 
579 
582 protected:
584  virtual Partridge_State ChDeveloping( void );
586  virtual Partridge_State ChMaturing( void );
588  void ChDying( void );
590  bool m_sex;
592  int m_starve;
593 
594 public:
596  virtual void BeginStep( void );
598  virtual void Step( void );
600  virtual void EndStep( void );
602  virtual bool DailyMortality();
604  virtual bool OnFarmEvent( FarmToDo event );
605 
607  virtual void Dying() {
608  ChDying();
609  }
610 
612  void OnYouAreDead();
613 
615  Partridge_Chick( int a_x, int a_y, Partridge_Female * a_mother, Partridge_Covey * a_flock, Landscape * a_map, bool a_sex,
616  int a_family_counter, Partridge_Population_Manager * a_manager );
617 
619  virtual ~Partridge_Chick( void ) {;
620  }
621 };
622 
623 
624 
630  virtual Partridge_State ChDeveloping( void );
632  virtual Partridge_State ChMaturing( void );
633 
634 public:
636  virtual void BeginStep( void );
638  virtual void Step( void );
640  virtual void EndStep( void );
642  virtual bool DailyMortality();
644  virtual bool OnFarmEvent( FarmToDo event );
646  Partridge_Chick2( int a_x, int a_y, Partridge_Female * a_mother, Partridge_Covey * a_flock, Landscape * a_map, bool a_sex,
647  int a_family_counter, Partridge_Population_Manager * a_manager );
649  virtual ~Partridge_Chick2( void ) {;}
650 };
651 
652 
653 
659  Partridge_State MFlocking( void );
663  Partridge_State MPairing( void );
671  void MDying( void );
672 
680  virtual void CheckMatePointers();
681 
682 public:
684  int AmIaMember();
685 
687  virtual void Dying() {
688  MDying();
689  }
690 
692  virtual void BeginStep( void );
694  virtual void Step( void );
696  virtual void EndStep( void );
698  virtual bool DailyMortality();
700  virtual bool OnFarmEvent( FarmToDo event );
701 
703  virtual void KillThis() {
704  MDying();
705  }
706 
708  void UnSetMate( void ) {
709  m_MyMate=NULL;
710  }
711 
713  virtual bool ArePaired() {
714  if (m_MyMate!=NULL) return true;
715  return false;
716  }
717 
720  return m_MyMate;
721  }
722 
724  Partridge_Male( int a_born_x, int a_born_y, int a_x, int a_y, Partridge_Covey * a_flock, Landscape * a_map,
725  int a_family_counter, Partridge_Population_Manager * a_manager );
726 
728  virtual ~Partridge_Male( void ) {;}
729 
731  void OnLookAfterKids( void );
733  void StartBreedingBehaviour( void );
735  void OnMating( Partridge_Female * a_mate );
737  void OnMateDying();
741  void OnChicksMatured();
743  void OnChicksDead();
745  void OnStoppingBreeding();
747  void OnFemaleGivingUp();
749  void OnMovingHome();
750 
753  m_MyOldWife=pf;
754  }
755 
758  return m_MyOldWife;
759  }
760 
762  void RemoveOldMate( bool a_knockon );
763 };
764 
765 
766 
771 protected:
772 // Methods
774  Partridge_State FFlocking( void );
782  Partridge_State FLaying( void );
784  Partridge_State FStartingNewBrood( bool a_waslaying );
793  void FDying( void );
795  virtual void CheckMatePointers();
797  double GetNestingCoverDensity();
798 
799 // Attributes
824 
825 public:
827  virtual void Dying() {
828  FDying();
829  }
830 
832  virtual void BeginStep( void );
834  virtual void Step( void );
836  virtual void EndStep( void );
838  virtual bool DailyMortality();
840  virtual bool OnFarmEvent( FarmToDo event );
841 
843  void OnMateDying( PartridgeCommunicationData * pc_data );
845  void OnClutchDeath();
847  void OnClutchMown();
849  void OnSetMyClutch( PartridgeCommunicationData * pc_data );
851  void OnChicksMatured();
853  void OnChicksDead();
855  void OnMating( PartridgeCommunicationData * pc_datae );
857  void OnWaitForMale();
859  void OnEggsHatch();
860 
862  int GetClutchSize( void ) {
863  return m_clutch_size;
864  }
865 
868  return m_MyClutch;
869  }
870 
873  return m_MyMate;
874  }
875 
877  void UnSetMate( void ) {
878  m_MyMate=NULL;
879  }
880 
882  virtual bool ArePaired() {
883  if (m_MyMate!=NULL) return true;
884  return false;
885  }
886 
888  virtual void KillThis() {
889  FDying();
890  }
891 
894  return m_MyOldHusband;
895  }
896 
899  m_MyOldHusband=pm;
900  }
901 
903  void RemoveOldMate(bool a_knockon) {
904  if (m_MyOldHusband!= NULL) {
905  if (!a_knockon) { // if it is a knock on then don't start a recursive set of calls
907  }
908  m_MyOldHusband= NULL;
909  }
910  }
911 
913  Partridge_Female( int a_born_x, int a_born_y, int a_x, int a_y, Partridge_Covey * a_flock, Landscape * a_map,
914  int a_family_counter, Partridge_Population_Manager * a_manager );
915 
917  virtual ~Partridge_Female( void ) {;}
918 
920  bool HaveTerritory( void ) {
921  return m_HaveTerritory;
922  }
923 };
924 #endif
Partridge_State
Definition: Partridge_All.h:266
@ pars_MDying
Definition: Partridge_All.h:279
@ pars_FLaying
Definition: Partridge_All.h:282
@ pars_FBuildingUpResources
Definition: Partridge_All.h:282
@ pars_ClDeveloping
Definition: Partridge_All.h:273
@ pars_CoveyBeing
Definition: Partridge_All.h:285
@ pars_MFlocking
Definition: Partridge_All.h:279
@ pars_MCaringForYoung
Definition: Partridge_All.h:279
@ pars_Destroy
Definition: Partridge_All.h:287
@ pars_FAttractingMate
Definition: Partridge_All.h:283
@ pars_FCaringForYoung
Definition: Partridge_All.h:283
@ pars_FIncubating
Definition: Partridge_All.h:283
@ pars_ChDeveloping
Definition: Partridge_All.h:276
@ pars_MFollowingMate
Definition: Partridge_All.h:279
@ pars_FDying
Definition: Partridge_All.h:283
@ pars_MFindingMate
Definition: Partridge_All.h:279
@ pars_FFlocking
Definition: Partridge_All.h:282
@ pars_MPairing
Definition: Partridge_All.h:279
@ pars_FMakingNest
Definition: Partridge_All.h:282
@ pars_MGuardingMate
Definition: Partridge_All.h:279
@ pars_FStartingNewBrood
Definition: Partridge_All.h:282
@ pars_CMoving
Definition: Partridge_All.h:270
@ pars_ChMaturing
Definition: Partridge_All.h:276
@ pars_Initiation
Definition: Partridge_All.h:267
@ pars_ChDying
Definition: Partridge_All.h:276
@ pars_ClDying
Definition: Partridge_All.h:273
@ pars_CoveyDissolve
Definition: Partridge_All.h:285
@ pars_FFindingTerritory
Definition: Partridge_All.h:282
@ pars_ClHatching
Definition: Partridge_All.h:273
Partridge_Object
Partridge object types.
Definition: Partridge_All.h:296
@ pob_Female
Definition: Partridge_All.h:297
@ pob_Clutch
Definition: Partridge_All.h:297
@ pob_Chick
Definition: Partridge_All.h:297
@ pob_Male
Definition: Partridge_All.h:297
@ pob_Chick2
Definition: Partridge_All.h:297
@ pob_Covey
Definition: Partridge_All.h:297
TPartridgeList< Partridge_Clutch * > Partridge_ClutchList
Definition: Partridge_All.h:394
Struct to pass adult partridge information.
Definition: Partridge_All.h:386
int age
Definition: Partridge_All.h:389
bool sex
Definition: Partridge_All.h:388
Struct to pass chick information.
Definition: Partridge_All.h:374
bool sex
Definition: Partridge_All.h:377
Partridge_Female * Mum
Definition: Partridge_All.h:376
Struct to pass clutch information.
Definition: Partridge_All.h:362
Partridge_Female * Mum
Definition: Partridge_All.h:365
int No
Definition: Partridge_All.h:364
Struct to pass covey information.
Definition: Partridge_All.h:329
int y
Definition: Partridge_All.h:332
Partridge_Base * first_member
Definition: Partridge_All.h:333
int x
Definition: Partridge_All.h:331
The landscape class containing all environmental and topographical data.
Definition: landscape.h:113
Base class for all partridge classes.
Definition: Partridge_All.h:401
int m_age
Age in days.
Definition: Partridge_All.h:410
int GetFamily(void)
Supply family ID.
Definition: Partridge_All.h:467
Partridge_State GetState(void)
Supply state.
Definition: Partridge_All.h:457
int GetAge(void)
Supply age.
Definition: Partridge_All.h:472
long GetID(void)
Supply ID.
Definition: Partridge_All.h:482
void SwitchCovey(Partridge_Covey *a_covey)
Swap coveys.
Definition: Partridge_All.cpp:216
void SetCovey(Partridge_Covey *a_covey)
Set covey pointer.
Definition: Partridge_All.h:492
int m_born_x
x-coord of birth
Definition: Partridge_All.h:412
int m_born_y
y-coord of birth
Definition: Partridge_All.h:414
virtual void CheckMatePointers()
Debug.
Definition: Partridge_All.h:426
Partridge_Object m_object_type
Type of pob object this is.
Definition: Partridge_All.h:418
long m_id
Individual bird ID.
Definition: Partridge_All.h:406
Partridge_State m_state
Current behavioural state.
Definition: Partridge_All.h:422
void MakeCovey()
Create our own covey.
Definition: Partridge_All.cpp:206
Partridge_Covey * m_covey
Pointer to the covey.
Definition: Partridge_All.h:420
void SetState(Partridge_State a_pars)
Set state.
Definition: Partridge_All.h:462
Partridge_Object GetObjectType()
Supply object type.
Definition: Partridge_All.h:432
virtual bool DailyMortality()
Background mortality test.
Definition: Partridge_All.cpp:228
int m_family_counter
Family ID.
Definition: Partridge_All.h:408
bool m_UncleStatus
If has uncle status in the covey.
Definition: Partridge_All.h:416
int m_signal
Used to pass information to outputs.
Definition: Partridge_All.h:404
Partridge_Covey * GetCovey(void)
Supply covey pointer.
Definition: Partridge_All.h:453
void SetUncleStatus(bool a_Status)
Set uncle status.
Definition: Partridge_All.h:442
Partridge_Base(int a_born_x, int a_born_y, int a_x, int a_y, int a_family_counter, Partridge_Covey *a_covey, Landscape *a_map, Partridge_Population_Manager *a_manager)
Constructor for Partridge_Base.
Definition: Partridge_All.cpp:156
bool GetUncleStatus()
Supply uncle status.
Definition: Partridge_All.h:437
void SetFamily(unsigned int family)
Set family ID.
Definition: Partridge_All.h:487
virtual bool ArePaired()
Overridden base function.
Definition: Partridge_All.h:450
bool PossibleMate(Partridge_Base *a_partridge)
Can we mate?
Definition: Partridge_All.cpp:179
void SetAge(int a_age)
Set age.
Definition: Partridge_All.h:477
Partridge_Population_Manager * m_OurPopulationManager
Pointer to the population manager.
Definition: Partridge_All.h:430
virtual ~Partridge_Base(void)
Destructor.
Definition: Partridge_All.cpp:192
The partridge Chick2 class.
Definition: Partridge_All.h:628
virtual ~Partridge_Chick2(void)
Destructor.
Definition: Partridge_All.h:649
virtual bool DailyMortality()
Background mortality check.
Definition: Partridge_All.cpp:1179
virtual Partridge_State ChMaturing(void)
State maturing.
Definition: Partridge_All.cpp:1221
virtual void BeginStep(void)
Chick2 BeginStep.
Definition: Partridge_All.cpp:1251
Partridge_Chick2(int a_x, int a_y, Partridge_Female *a_mother, Partridge_Covey *a_flock, Landscape *a_map, bool a_sex, int a_family_counter, Partridge_Population_Manager *a_manager)
Constructor.
Definition: Partridge_All.cpp:1028
virtual bool OnFarmEvent(FarmToDo event)
Management event handler.
Definition: Partridge_All.cpp:1044
virtual void EndStep(void)
Chick2 EndSte[.
Definition: Partridge_All.cpp:1302
virtual void Step(void)
Chick2Step.
Definition: Partridge_All.cpp:1273
virtual Partridge_State ChDeveloping(void)
State developing.
Definition: Partridge_All.cpp:1205
Partridge chick class.
Definition: Partridge_All.h:581
int m_starve
Days spent starving.
Definition: Partridge_All.h:592
void OnYouAreDead()
Message handler.
Definition: Partridge_All.cpp:1016
virtual void BeginStep(void)
Chick BeginStep.
Definition: Partridge_All.cpp:680
virtual void EndStep(void)
Chick EndStep.
Definition: Partridge_All.cpp:738
bool m_sex
Sex.
Definition: Partridge_All.h:590
virtual Partridge_State ChMaturing(void)
Maturation.
Definition: Partridge_All.cpp:961
virtual void Dying()
Generic dying handler.
Definition: Partridge_All.h:607
Partridge_Chick(int a_x, int a_y, Partridge_Female *a_mother, Partridge_Covey *a_flock, Landscape *a_map, bool a_sex, int a_family_counter, Partridge_Population_Manager *a_manager)
Constructor.
Definition: Partridge_All.cpp:663
virtual void Step(void)
Chick Step.
Definition: Partridge_All.cpp:709
virtual Partridge_State ChDeveloping(void)
Development.
Definition: Partridge_All.cpp:922
virtual bool OnFarmEvent(FarmToDo event)
Farm event handler.
Definition: Partridge_All.cpp:765
void ChDying(void)
Chick Dying.
Definition: Partridge_All.cpp:989
virtual bool DailyMortality()
Background mortality test.
Definition: Partridge_All.cpp:905
virtual ~Partridge_Chick(void)
Destructor.
Definition: Partridge_All.h:619
The partridge clutch class.
Definition: Partridge_All.h:518
virtual void Step(void)
ClutchStep.
Definition: Partridge_All.cpp:297
void SetClutchSize(int cs)
Set no. eggs.
Definition: Partridge_All.h:556
virtual ~Partridge_Clutch(void)
Destructor.
Definition: Partridge_All.h:575
void AgDying()
Killed by management.
Definition: Partridge_All.cpp:364
virtual void BeginStep(void)
Clutch BeginStep.
Definition: Partridge_All.cpp:282
Partridge_Female * m_mother
Pointer to mother.
Definition: Partridge_All.h:526
virtual bool OnFarmEvent(FarmToDo event)
Handle farm event.
Definition: Partridge_All.cpp:380
Partridge_Clutch(int a_x, int a_y, Partridge_Female *a_mother, Partridge_Covey *a_flock, Landscape *a_map, int a_num_eggs, int a_family_counter, Partridge_Population_Manager *a_manager)
Constructor.
Definition: Partridge_All.cpp:261
bool m_underincubation
Are we being incubated?
Definition: Partridge_All.h:528
void OnGivenUp()
Message handler.
Definition: Partridge_All.cpp:631
void OnStartIncubating()
Flag under incubation.
Definition: Partridge_All.h:536
Partridge_State ClDeveloping(void)
Development state.
Definition: Partridge_All.cpp:538
virtual void Dying()
Generic dying handler.
Definition: Partridge_All.h:532
int GetClutchSize(void)
Supply no eggs.
Definition: Partridge_All.h:561
void ClDying(void)
Dying state.
Definition: Partridge_All.cpp:596
virtual bool DailyMortality()
Background mortality test.
Definition: Partridge_All.cpp:354
void OnMumDead()
Message handler.
Definition: Partridge_All.cpp:617
void OnEaten()
Message handler.
Definition: Partridge_All.cpp:645
Partridge_Female * GetMother(void)
Supply mother pointer.
Definition: Partridge_All.h:566
int m_clutch_size
No. of eggs.
Definition: Partridge_All.h:524
virtual void EndStep(void)
Clutch EndStep.
Definition: Partridge_All.cpp:327
The collective for a family of partridges
Definition: Partridge_Covey.h:90
The partridge female class.
Definition: Partridge_All.h:770
bool m_clutchproduced
Flag for having produced a clutch.
Definition: Partridge_All.h:803
Partridge_Clutch * GetClutch(void)
Supply clutch pointer.
Definition: Partridge_All.h:867
void OnClutchDeath()
Message handler.
Definition: Partridge_All.cpp:2056
Partridge_State FLaying(void)
Female laying state.
Definition: Partridge_All.cpp:1768
void RemoveOldMate(bool a_knockon)
Forget old mate.
Definition: Partridge_All.h:903
virtual void Dying()
General dying handler area.
Definition: Partridge_All.h:827
Partridge_State FIncubating(void)
Female incubating state.
Definition: Partridge_All.cpp:1856
void OnMating(PartridgeCommunicationData *pc_datae)
Message handler.
Definition: Partridge_All.cpp:2031
int m_triggerlayingvar
Adds stochasticity to the light triggering of breeding.
Definition: Partridge_All.h:813
Partridge_Female(int a_born_x, int a_born_y, int a_x, int a_y, Partridge_Covey *a_flock, Landscape *a_map, int a_family_counter, Partridge_Population_Manager *a_manager)
Constructor.
Definition: Partridge_All.cpp:1334
void OnWaitForMale()
Message handler.
Definition: Partridge_All.cpp:2015
void OnClutchMown()
Message handler.
Definition: Partridge_All.cpp:2069
bool HaveTerritory(void)
Have we a breeding 'territory'?
Definition: Partridge_All.h:920
Partridge_State FMakingNest(void)
Female making nest state.
Definition: Partridge_All.cpp:1673
virtual bool ArePaired()
Are we paired?
Definition: Partridge_All.h:882
int m_nest_counter
Days spent nest building.
Definition: Partridge_All.h:809
Partridge_Male * m_MyOldHusband
A record of the previous mate if any.
Definition: Partridge_All.h:821
virtual bool DailyMortality()
Background mortality check.
Definition: Partridge_All.cpp:1454
bool m_HaveTerritory
Flag for having found a suitable breeding area.
Definition: Partridge_All.h:801
void SetOldMate(Partridge_Male *pm)
Set old mate pointer.
Definition: Partridge_All.h:898
Partridge_State FFindingTerritory(void)
Female finding 'territory' state.
Definition: Partridge_All.cpp:1912
void FDying(void)
Definition: Partridge_All.cpp:1984
virtual void EndStep(void)
Female EndStep.
Definition: Partridge_All.cpp:1441
virtual void KillThis()
Direct mortality message.
Definition: Partridge_All.h:888
Partridge_State FBuildingUpResources(void)
Female building up resources state.
Definition: Partridge_All.cpp:1644
void OnMateDying(PartridgeCommunicationData *pc_data)
Message handler.
Definition: Partridge_All.cpp:2129
virtual ~Partridge_Female(void)
Destructor.
Definition: Partridge_All.h:917
Partridge_State FCaringForYoung(void)
Female caring for young state.
Definition: Partridge_All.cpp:1896
Partridge_Male * GetMate(void)
Supply mate pointer.
Definition: Partridge_All.h:872
virtual bool OnFarmEvent(FarmToDo event)
Management event handler.
Definition: Partridge_All.cpp:1491
Partridge_State FPairing(void)
Female pairing state.
virtual void Step(void)
Female Step.
Definition: Partridge_All.cpp:1378
Partridge_Male * GetOldMate(void)
Supply old mate pointer.
Definition: Partridge_All.h:893
int m_startlayingday
Records the day laying started.
Definition: Partridge_All.h:815
int m_clutch_number
Current clutch attempt.
Definition: Partridge_All.h:807
Partridge_State FStartingNewBrood(bool a_waslaying)
Female starting new brood state.
Definition: Partridge_All.cpp:1802
int m_lifespan
Physiological lifespan in days.
Definition: Partridge_All.h:811
Partridge_State FFlocking(void)
Female flocking state.
Definition: Partridge_All.cpp:1632
void OnEggsHatch()
Message handler.
Definition: Partridge_All.cpp:2096
void OnChicksMatured()
Message handler.
Definition: Partridge_All.cpp:2107
virtual void CheckMatePointers()
Debug function - checking mate consistency
Definition: Partridge_All.cpp:2827
double GetNestingCoverDensity()
Calls Partridge_Population_Manager::GetNestingCoverDensity
Definition: Partridge_All.cpp:273
void OnSetMyClutch(PartridgeCommunicationData *pc_data)
Message handler.
Definition: Partridge_All.cpp:2086
Partridge_State FAttractingMate(void)
Female attracting mate state.
Definition: Partridge_All.cpp:1962
int GetClutchSize(void)
´Supply clutch size
Definition: Partridge_All.h:862
Partridge_Clutch * m_MyClutch
A pointer to any current clutch.
Definition: Partridge_All.h:823
Partridge_Male * m_MyMate
A pointer to the current mate if any.
Definition: Partridge_All.h:819
int m_clutch_size
Current clutch size.
Definition: Partridge_All.h:805
int m_buildupwait
Delay before breeding can commence.
Definition: Partridge_All.h:817
void UnSetMate(void)
Forget mate.
Definition: Partridge_All.h:877
void OnChicksDead()
Message handler.
Definition: Partridge_All.cpp:2118
virtual void BeginStep(void)
Female BeginStep.
Definition: Partridge_All.cpp:1354
The partridge male class.
Definition: Partridge_All.h:657
Partridge_State MFindingMate(void)
State male finding mate.
Definition: Partridge_All.cpp:2499
virtual void Step(void)
Male Step.
Definition: Partridge_All.cpp:2228
void OnMateDying()
Message handler.
Definition: Partridge_All.cpp:2761
Partridge_Male(int a_born_x, int a_born_y, int a_x, int a_y, Partridge_Covey *a_flock, Landscape *a_map, int a_family_counter, Partridge_Population_Manager *a_manager)
Constructor.
Definition: Partridge_All.cpp:2183
void StartBreedingBehaviour(void)
Message handler.
Definition: Partridge_All.cpp:2719
void OnFoundATerrtitory()
Message handler.
Partridge_State MGuardingMate(void)
State male guarding mate.
Definition: Partridge_All.cpp:2605
void OnChicksMatured()
Message handler.
Definition: Partridge_All.cpp:2699
void OnLookAfterKids(void)
Message handler.
Definition: Partridge_All.cpp:2675
Partridge_State MFollowingMate(void)
State male follow mate.
Definition: Partridge_All.cpp:2587
void OnMating(Partridge_Female *a_mate)
Message handler.
Definition: Partridge_All.cpp:2738
virtual ~Partridge_Male(void)
Destructor.
Definition: Partridge_All.h:728
Partridge_Female * m_MyOldWife
Old mate pointer.
Definition: Partridge_All.h:676
void UnSetMate(void)
remove mate pointer
Definition: Partridge_All.h:708
virtual void BeginStep(void)
Male BeginStep.
Definition: Partridge_All.cpp:2202
virtual void Dying()
General dying handler.
Definition: Partridge_All.h:687
void RemoveOldMate(bool a_knockon)
Forget any old mate.
Definition: Partridge_All.cpp:2661
Partridge_Female * GetMate(void)
Are we paired?
Definition: Partridge_All.h:719
void OnStoppingBreeding()
Message handler.
Definition: Partridge_All.cpp:2709
Partridge_State MCaringForYoung(void)
State male caring for young.
Definition: Partridge_All.cpp:2617
virtual void CheckMatePointers()
A debug function.
Definition: Partridge_All.cpp:2800
void OnMovingHome()
Message handler.
Definition: Partridge_All.cpp:2729
void MDying(void)
State male dying.
Definition: Partridge_All.cpp:2630
void OnFemaleGivingUp()
Message handler.
Definition: Partridge_All.cpp:2783
virtual bool OnFarmEvent(FarmToDo event)
Management event handler.
Definition: Partridge_All.cpp:2309
void OnChicksDead()
Message handler.
Definition: Partridge_All.cpp:2689
int m_lifespan
Physiological lifespan.
Definition: Partridge_All.h:674
virtual bool ArePaired()
Are we paired?
Definition: Partridge_All.h:713
virtual bool DailyMortality()
Background mortality check.
Definition: Partridge_All.cpp:2446
Partridge_Female * GetOldMate(void)
Supply old mate pointer.
Definition: Partridge_All.h:757
void SetOldMate(Partridge_Female *pf)
Set old mate pointer.
Definition: Partridge_All.h:752
virtual void EndStep(void)
Male EndStep.
Definition: Partridge_All.cpp:2285
Partridge_Female * m_MyMate
Current mate pointer.
Definition: Partridge_All.h:678
virtual void KillThis()
General direct mortality handler.
Definition: Partridge_All.h:703
int AmIaMember()
A debug function.
Definition: Partridge_All.cpp:3159
Partridge_State MFlocking(void)
State male flocking.
Definition: Partridge_All.cpp:2489
Partridge_State MPairing(void)
State male pairing.
Definition: Partridge_All.cpp:2576
The population manager for partridge objects.
Definition: Partridge_Population_Manager.h:83
Struct to basic partridge information.
Definition: Partridge_All.h:342
virtual ~Partridge_struct()
Definition: Partridge_All.h:352
int by
Definition: Partridge_All.h:347
Partridge_Covey * m_covey
Definition: Partridge_All.h:349
int x
Definition: Partridge_All.h:344
int bx
Definition: Partridge_All.h:346
int y
Definition: Partridge_All.h:345
Landscape * L
Definition: Partridge_All.h:348
int family_counter
Definition: Partridge_All.h:350
The base class for all ALMaSS animal classes.
Definition: PopulationManager.h:205
virtual void CopyMyself()
Definition: PopulationManager.h:224
Definition: Partridge_All.h:315
TPartridgeList()
Definition: Partridge_All.h:317
Class for calculating k-factors.
Definition: Partridge_All.h:235
void CreateInfoDatabaseFile()
Definition: Partridge_All.cpp:3145
double m_rk6
Definition: Partridge_All.h:244
population_attributes * m_LastYear
Definition: Partridge_All.h:252
void reset()
Definition: Partridge_All.cpp:2978
double m_dpk2
Definition: Partridge_All.h:245
void calcreal_3()
Definition: Partridge_All.cpp:3015
double m_dpk4
Definition: Partridge_All.h:245
void DumpInfoDatabase()
Definition: Partridge_All.cpp:3088
double m_dpk3
Definition: Partridge_All.h:245
k_factors()
Definition: Partridge_All.cpp:2858
~k_factors()
Definition: Partridge_All.cpp:2871
double m_rk4
Definition: Partridge_All.h:244
population_attributes * m_ThisYear
Definition: Partridge_All.h:251
double m_dpk1
Definition: Partridge_All.h:245
FILE * kfactorsfile
Definition: Partridge_All.h:243
void Output_kfactors()
Definition: Partridge_All.cpp:2893
void calcreal_2()
Definition: Partridge_All.cpp:3006
double m_dpk5
Definition: Partridge_All.h:245
double m_rk5
Definition: Partridge_All.h:244
void DumpInfoDatabase1(int, int, double)
Definition: Partridge_All.cpp:3076
double m_rk1
Definition: Partridge_All.h:244
void calcDickPottsk()
Definition: Partridge_All.cpp:3026
double m_rk3
Definition: Partridge_All.h:244
double m_rk2
Definition: Partridge_All.h:244
void calcreal_1()
Definition: Partridge_All.cpp:2994
Definition: Partridge_All.h:45
int m_NoFemalesApril
Definition: Partridge_All.h:65
int m_NoMalesApril
Definition: Partridge_All.h:66
void incNoHensPredated()
Definition: Partridge_All.h:104
void incNoDeadChicks()
Definition: Partridge_All.h:168
void setNoMalesAug(int nm)
Definition: Partridge_All.h:220
void setNoMalesSept(int n)
Definition: Partridge_All.h:148
void SetTerritorialFemalesInApril(double fa)
Definition: Partridge_All.h:128
void incNoClutchesPredated()
Definition: Partridge_All.h:100
void SetBroodGeoMean(double gm)
Definition: Partridge_All.h:136
int m_NoChicksSept
Definition: Partridge_All.h:55
void setNoFemsAug(int nf)
Definition: Partridge_All.h:224
int m_NoMalesSept
Definition: Partridge_All.h:53
void incNoDeadClutches()
Definition: Partridge_All.h:160
void setNoChick2sAug(int ch)
Definition: Partridge_All.h:216
int m_NoClutches
Definition: Partridge_All.h:50
int m_NoDeadClutches
Definition: Partridge_All.h:71
int m_NoChick1sAug
Definition: Partridge_All.h:80
void SetMalesInApril(double fa)
Definition: Partridge_All.h:124
void incNoClutchesHatched()
Definition: Partridge_All.h:96
int m_NoShotFemales
Definition: Partridge_All.h:57
int m_NoFemalesSept
Definition: Partridge_All.h:54
void SetFemalesInApril(double fa)
Definition: Partridge_All.h:120
int m_NoBirdsApril
Definition: Partridge_All.h:68
void setNoChicksSept(int n)
Definition: Partridge_All.h:140
void setNoFemalesDec(int n)
Definition: Partridge_All.h:152
int m_NoOldFemales
Definition: Partridge_All.h:59
int m_NoChick2sAug
Definition: Partridge_All.h:81
int m_NoFemsAug
Definition: Partridge_All.h:83
int m_NoOldMales
Definition: Partridge_All.h:58
int m_NoDeadFemales
Definition: Partridge_All.h:74
~population_attributes()
Definition: Partridge_All.cpp:2888
void SetPairsInApril(double pa)
Definition: Partridge_All.h:116
void incNoChicksSixWeeks()
Definition: Partridge_All.h:112
int m_NoDeadChicks
Definition: Partridge_All.h:73
void incNoStarvedChicks()
Definition: Partridge_All.h:188
void SetBirdsInApril(double ba)
Definition: Partridge_All.h:132
void incNoClutches()
Definition: Partridge_All.h:87
int m_NoMalesDec
Definition: Partridge_All.h:69
int m_NoTerritorialFemalesApril
Definition: Partridge_All.h:67
void setNoOldMales(int nm)
Definition: Partridge_All.h:192
int m_NoFemalesDec
Definition: Partridge_All.h:70
void incNoChicksHatched()
Definition: Partridge_All.h:108
int m_NoNonTerritorialFemalesMay
Definition: Partridge_All.h:77
void setNoFemalesSept(int n)
Definition: Partridge_All.h:144
int m_NoAgDeadClutches
Definition: Partridge_All.h:72
int m_NoTerritorialFemalesMay
Definition: Partridge_All.h:76
void incNoDeadFemales()
Definition: Partridge_All.h:172
int m_NoHensPredated
Definition: Partridge_All.h:63
int m_NoChicksSixWeeks
Definition: Partridge_All.h:52
void incNoShotBirds()
Definition: Partridge_All.h:180
void copyself(population_attributes *a_population_attributes)
Definition: Partridge_All.cpp:2904
int m_NoClutchesHatched
Definition: Partridge_All.h:78
void SetTerritorialFemalesInMay(int nf)
Definition: Partridge_All.h:200
void setNoOldFemales(int nf)
Definition: Partridge_All.h:196
int m_NoStarvedChicks
Definition: Partridge_All.h:84
int m_NoClutchesReplacements
Definition: Partridge_All.h:61
int m_NoDeadMales
Definition: Partridge_All.h:75
void incNoAgDeadClutches()
Definition: Partridge_All.h:164
void reset()
Definition: Partridge_All.cpp:2941
void SetNonTerritorialFemalesInMay(int nf)
Definition: Partridge_All.h:204
void AddToChicks6wks(int ch)
Definition: Partridge_All.h:208
double m_geomeanBroodSize
Definition: Partridge_All.h:60
int m_NoShotBirds
Definition: Partridge_All.h:56
void decNoClutches()
Definition: Partridge_All.h:91
void incNoShotFemales()
Definition: Partridge_All.h:184
void setNoMalesDec(int n)
Definition: Partridge_All.h:156
int m_FemalesYear1
Definition: Partridge_All.h:79
population_attributes()
Definition: Partridge_All.cpp:2882
int m_NoMalesAug
Definition: Partridge_All.h:82
int m_NoPairsApril
Definition: Partridge_All.h:64
void incNoDeadMales()
Definition: Partridge_All.h:176
int m_NoClutchesPredated
Definition: Partridge_All.h:62
void setNoChick1sAug(int ch)
Definition: Partridge_All.h:212
int m_NoChicksHatched
Definition: Partridge_All.h:51
Data structure of a message.
Definition: Partridge_Communication.h:78
FarmToDo
Definition: treatment.h:31